package com.whosly.api.enums;

import com.whosly.api.annotation.dozer.EnumValue;
import com.whosly.api.enums.IResultCodeType;

/**
 * @category 基本异常错误码,以 1000xxx 开头的7位长度
 *
 * @author 袁洋 2014年8月2日
 */
public enum BaseErrorType implements IResultCodeType {
	/*** 编码错误%s */
	CODE_PLACE_EXCEPTION("1000001", "编码错误%s"),
	/**
	 * 连接超时
	 */
	CONNECT_TIMEOUT_ERROR("1000008", "连接超时"),
	/*** 解密操作%s异常 */
	DECRYPT_PLACE_ERROR("1000002", "解密操作%s异常"),
	/** 不支持的系统请求 */
	DONOT_SUPPORT_REQUEST("1000006", "不支持的系统请求"),
	/*** 加密操作%s异常 */
	ENCRYPT_PLACE_ERROR("1000003", "加密操作%s异常"),
	/** 不允许进行解密操作%s */
	NOT_ALLOW_DECRYPT_PLACE("1000004", "不允许进行解密操作%s"),
	/** 未被实现的加密策略%s */
	NOT_ALLOW_ENCRYPT_PLACE("1000005", "未被实现的加密策略%s"),
	/*** 数据记录不存在 */
	RECORD_NOT_EXIT("1000015", "数据记录不存在!"),
	/** 服务不存在 */
	SERVICE_NOT_FOUND("1000012", "服务不存在"),
	/**
	 * 响应超时
	 */
	SOCKET_TIMEOUT_ERROR("1000009", "响应超时"),
	/** 系统繁忙 */
	SYSTEM_BUSY("1000013", "系统繁忙"),
	/**
	 * 系统发生内部错误
	 */
	SYSTEM_ERROR("1000014", "系统发生内部错误"),
	/** 系统异常 */
	SYSTEM_EXCEPTION("1000010", "系统异常"),
	/** 未知异常 */
	UNKNOW_ERROR("1000011", "未知异常"),
	/**
	 * 未知主机错误
	 */
	UNKNOWN_HOST_ERROR("1000007", "未知主机错误"),;

	/** 错误码 */
	private String code;

	/** 错误码描述 */
	private String message;

	/**
	 * @param errorCode
	 *            错误码
	 * @param describe
	 *            错误码描述
	 */
	private BaseErrorType(final String errorCode, final String describe) {
		this.code = errorCode;
		this.message = describe;
	}

	@Override
	@EnumValue
	public String getCode() {
		return code;
	}

	@Override
	public String getMessage() {
		return message;
	}

	public void setCode(final String code) {
		this.code = code;
	}

	public void setMessage(final String message) {
		this.message = message;
	}

}
